package com.ruoyi.info.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.ruoyi.info.domain.EnterpriseBase;
import com.ruoyi.info.vo.AuditingEnterpriseBase;
import io.lettuce.core.dynamic.annotation.Param;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 企业基地Service接口
 *
 * @author wangshi
 * @date 2023-06-06
 */
public interface IEnterpriseBaseService {
    /**
     * 查询企业基地
     *
     * @param id 企业基地主键
     * @return 企业基地
     */
    public EnterpriseBase selectEnterpriseBaseById(Long id);

    /**
     * 查询企业基地列表
     *
     * @param enterpriseBase 企业基地
     * @return 企业基地集合
     */
    public List<EnterpriseBase> selectEnterpriseBaseList(EnterpriseBase enterpriseBase);

    /**
     * 新增企业基地
     *
     * @param enterpriseBase 企业基地
     * @return 结果
     */
    public int insertEnterpriseBase(EnterpriseBase enterpriseBase);

    /**
     * 修改企业基地
     *
     * @param enterpriseBase 企业基地
     * @return 结果
     */
    public int updateEnterpriseBase(EnterpriseBase enterpriseBase);

    /**
     * 批量删除企业基地
     *
     * @param ids 需要删除的企业基地主键集合
     * @return 结果
     */
    public int deleteEnterpriseBaseByIds(Long[] ids);

    /**
     * 删除企业基地信息
     *
     * @param id 企业基地主键
     * @return 结果
     */
    public int deleteEnterpriseBaseById(Long id);

    /**
     * 导出企业基地信息
     */
    public void exportEnterpriseBase(HttpServletResponse response, EnterpriseBase enterpriseBase) throws IOException;

    /**
     * 导出企业基地信息模板
     */
    public void templateDownload(HttpServletResponse response) throws IOException;

    /**
     * 导入企业基地信息模板-解析模板数据
     */
    public int templateRender(MultipartFile file) throws IOException;
    /**
     * 企业基地审核
     *
     * @param auditingEnterpriseBase 企业基地审核字段
     * @return
     */
    public int auditingEnterpriseBase(AuditingEnterpriseBase auditingEnterpriseBase);

    /**
     * 全国省份生产基地数量排名
     * @param name 企业名称
     * @return 同比增长
     */
    public List<Map<String, String>> selectRanking(String name);

    /**
     * 企业供货产品满产产能趋势
     * @param name 企业名称
     * @return 同比增长
     */
    public  List<Map<String,String>> selectCapacity(String name);
    /**
     * 企业供货产品类型分布&满产产能趋势
     * @param name 企业名称
     * @return 同比增长
     */
    public  List<Map<String,String>> selectProductTypeDistribution(String name);

    /**
     * 企业统计基本信息
     * @param name 企业名称
     * @return 同比增长
     */
    public  Map<String,String> selectBasicInfo(String name);
}
